package com.zhj.leetcode;

import java.util.Arrays;

/**
 * 力扣27 将目标数字移动到最后
 * @author zhj
 */
public class Test27 {
    public static void main(String[] args) {
        int[] nums = new int[]{0,1,2,2,3,0,4,2};
        System.out.println(m(nums, 2));
        System.out.println(Arrays.toString(nums));
    }

    private static int m(int[] nums, int val) {
        if (nums == null || nums.length == 0)
            return 0;
        int l = 0;
        int r = nums.length - 1;
        while (l < r) {
            // 符合条件停止
            while (l < r && nums[l] != val) {
                l++;
            }
            // 不符合条件停止
            while (l < r && nums[r] == val) {
                r--;
            }
            // 交换位置
            int temp = nums[l];
            nums[l] = nums[r];
            nums[r] = temp;
        }
        // 符合条件的数量
        return nums[l] == val ? l : l + 1;
    }
}
